// (1)-要使用immutable，要先下载 npm install -save immutable
// (2)-在项目中使用，就要引入，此处用的require
// (3) 运行的时候cd到文件夹下，node Map.js  来运行
let {Map}=require("immutable")  //1-先引入
// 2-再创建对象
let a = Map({
    name:"xixi",
    age:18
})
// // 3-读取   get
// console.log(a.get("name"))  //xixi


// // 4-修改  set
// let b = a.set("name","wf")
// console.log(b.get("name")+"----"+a.get("name")) //wf----xixi

/* 5-删除 ：
    5-1  单删   delete
    5-2  多删   deleteAll
     */
// 单删
// let c = a.delete("name")
// console.log(c.get("name")+"---"+c.get("age"))   //undefined---18
// 多删
// let c = a.deleteAll(["name","age"])
// console.log(c.get("name")+"---"+c.get("age"))   //undefined---undefined

// 6-清除   clear
// let d = a.clear()
// console.log(d)   //Map {}

// 7-合并并且返回新的Map
// let aa=Map({
//    sex:1
// })
// let combine = a.merge(aa)
// console.log (combine) //Map { "name": "xixi", "age": 18, "sex": 1 }

// immutable 对象转换为JS对象
let ibMap=Map({
    obja:Map({
        objb:Map({
            name:"wf"
        })
    })
})
// console.log(ibMap) //Map { "obja": Map { "objb": Map { "name": "wf" } } }  这是字符串

// // 深转换
// let newIbMap=ibMap.toJS()
// console.log(newIbMap) //{ obja: { objb: { name: 'wf' } } }    这是对象

// 浅转换
// let qianMap=ibMap.toJSON()
// console.log(qianMap)//{ obja: Map { "objb": Map { "name": "wf" } } }   只转换了第一层

// toArray 转换成数组 浅转换
let newibMap =ibMap.toArray()
console.log(newibMap) //[ [ 'obja', Map { "objb": Map { "name": "wf" } } ] ]